// 实体类, 表结构 + 模型 用户表
let mongoose = require('mongoose')

// 定义用户表结构
let Schema = mongoose.Schema

let UserSchema = Schema({
    name: String,   // 用户名
    pwd: String     // 密码
}, {
    versionKey: false   // 查询数据库时,忽略_v的字段返回
})

// 为模式添加静态方法, 不会与数据库进行交互, 只有在模型实例化编译后产生作用
// 通过模型调用
UserSchema.statics = {
    // 保存用户名
    save (opts) {
        return this.create(opts)
    },
    // 根据Id来更新用户信息
    updateById (id, opts) {
        return this.update({_id: id}, opts).then( (res) => {
            if (res.ok) {
                return Promise.resolve()
            } else {
                return Promise.reject(' 数据库更新用户名失败')
            }
        })
    },
    // 根据id来查看用户信息
    findOneById (id) {
        return this.findOne({ _id: id})
    },
    // 根据id删除用户信息
}

//编译生成User模型，并将模型构造函数导出
module.exports = mongoose.model('User', UserSchema)
